
// Generated from ./ANTLRv4Lexer.g4 by ANTLR 4.8

#pragma once


#include <string>
#include "../ANTLRv4LexerBase.hpp"


#include "antlr4-runtime.h"




class  ANTLRv4Lexer : public ANTLRv4LexerBase {
public:
  enum {
    TOKEN_REF = 1, RULE_REF = 2, LEXER_CHAR_SET = 3, DOC_COMMENT = 4, BLOCK_COMMENT = 5, 
    LINE_COMMENT = 6, DOUBLE_QUOTE_STRING_LITERAL = 7, BEGIN_ARG_ACTION = 8, 
    BEGIN_ACTION = 9, OPTIONS = 10, TOKENS = 11, IMPORT = 12, FRAGMENT = 13, 
    LEXER = 14, PARSER = 15, GRAMMAR = 16, PROTECTED = 17, PUBLIC = 18, 
    PRIVATE = 19, RETURNS = 20, LOCALS = 21, THROWS = 22, CATCH = 23, FINALLY = 24, 
    MODE = 25, COLON = 26, COLONCOLON = 27, COMMA = 28, SEMI = 29, LPAREN = 30, 
    RPAREN = 31, RARROW = 32, LT = 33, GT = 34, ASSIGN = 35, QUESTION = 36, 
    STAR = 37, PLUS = 38, PLUS_ASSIGN = 39, OR = 40, DOLLAR = 41, DOT = 42, 
    RANGE = 43, AT = 44, POUND = 45, NOT = 46, RBRACE = 47, ID = 48, INT = 49, 
    STRING_LITERAL = 50, WS = 51, ERRCHAR = 52, ARG_ACTION_LT = 53, ARG_ACTION_GT = 54, 
    ARG_ACTION_LPAREN = 55, ARG_ACTION_RPAREN = 56, ARG_ACTION_EQUALS = 57, 
    ARG_ACTION_COMMA = 58, ARG_ACTION_ESCAPE = 59, ARG_ACTION_WORD = 60, 
    ARG_ACTION_ELEMENT = 61, ARG_ACTION_TEXT = 62, ARG_ACTION_WS = 63, ARG_ACTION_NEWLINE = 64, 
    END_ARG_ACTION = 65, ACTION_DOT = 66, ACTION_LT = 67, ACTION_GT = 68, 
    ACTION_LPAREN = 69, ACTION_RPAREN = 70, ACTION_LBRACK = 71, ACTION_RBRACK = 72, 
    ACTION_EQUALS = 73, ACTION_COMMA = 74, ACTION_COLON2 = 75, ACTION_COLON = 76, 
    ACTION_MINUS = 77, ACTION_ESCAPE = 78, ACTION_WORD = 79, ACTION_REFERENCE = 80, 
    ACTION_COMMENT = 81, ACTION_LITERAL = 82, ACTION_TEXT = 83, ACTION_WS = 84, 
    ACTION_NEWLINE = 85, END_ACTION = 86
  };

  enum {
    ArgAction = 1, Action = 2, LexerCharSet = 3
  };

  ANTLRv4Lexer(antlr4::CharStream *input);
  ~ANTLRv4Lexer();

  virtual std::string getGrammarFileName() const override;
  virtual const std::vector<std::string>& getRuleNames() const override;

  virtual const std::vector<std::string>& getChannelNames() const override;
  virtual const std::vector<std::string>& getModeNames() const override;
  virtual const std::vector<std::string>& getTokenNames() const override; // deprecated, use vocabulary instead
  virtual antlr4::dfa::Vocabulary& getVocabulary() const override;

  virtual const std::vector<uint16_t> getSerializedATN() const override;
  virtual const antlr4::atn::ATN& getATN() const override;

  virtual void action(antlr4::RuleContext *context, size_t ruleIndex, size_t actionIndex) override;
private:
  static std::vector<antlr4::dfa::DFA> _decisionToDFA;
  static antlr4::atn::PredictionContextCache _sharedContextCache;
  static std::vector<std::string> _ruleNames;
  static std::vector<std::string> _tokenNames;
  static std::vector<std::string> _channelNames;
  static std::vector<std::string> _modeNames;

  static std::vector<std::string> _literalNames;
  static std::vector<std::string> _symbolicNames;
  static antlr4::dfa::Vocabulary _vocabulary;
  static antlr4::atn::ATN _atn;
  static std::vector<uint16_t> _serializedATN;


  // Individual action functions triggered by action() above.
  void BEGIN_ARG_ACTIONAction(antlr4::RuleContext *context, size_t actionIndex);

  // Individual semantic predicate functions triggered by sempred() above.

  struct Initializer {
    Initializer();
  };
  static Initializer _init;
};

